#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>

//int main()
//{
//	for (int i = 0; i || i++ < 5;)
//	{
//		printf("haha\n");
//	}
//	return 0;
//}
//
//int dominantIndex(int* nums, int numsSize)
//{
//    int max = 0;
//    int count = 0;
//    int i = 0;
//    int ret = 0;
//    for (i = 0; i < numsSize; i++)
//    {
//        if (nums[i] > max)
//        {
//            max = nums[i];
//            ret = i;
//        }
//    }
//    for (i = 0; i < numsSize; i++)
//    {
//        if (max >= 2 * nums[i])
//        {
//            count++;
//        }
//    }
//
//    if (count == numsSize - 1)
//    {
//        return ret;
//    }
//    else
//    {
//        return -1;
//    }
//}

//int* intersection(int* nums1, int nums1Size, int* nums2, int nums2Size, int* returnSize)
//{
//    int* arr = (int*)malloc(1000 * sizeof(int));
//    memset(arr, -1, 1000 * 4);
//    int size = 0;
//
//    for (int i = 0; i < nums1Size; i++)
//    {
//        for (int j = 0; j < nums2Size; j++)
//        {
//            if (nums1[i] == nums2[j])
//            {
//                arr[nums1[i]] = nums1[i];
//                size++;
//            }
//        }
//    }
//
//    int* ret = (int*)malloc(size * sizeof(int));
//    int i = 0;
//    int j = 0;
//    for (i = 0; i < 1000; i++)
//    {
//        if (arr[i] >= 0)
//        {
//            ret[j] = arr[i];
//            j++;
//        }
//    }
//
//    free(arr);
//    arr = NULL;
//    *returnSize = size;
//
//    return ret;
//}

int* intersection(int* nums1, int nums1Size, int* nums2, int nums2Size, int* returnSize)
{
    int* arr = (int*)malloc(1000 * sizeof(int));
    memset(arr, -1, 1000 * 4);

    for (int i = 0; i < nums1Size; i++)
    {
        for (int j = 0; j < nums2Size; j++)
        {
            if (nums1[i] == nums2[j])
            {
                arr[nums1[i]] = nums1[i];
            }
        }
    }

    int i = 0;
    int j = 0;
    int* ret = NULL;
    for (i = 0; i < 1000; i++)
    {
        if (arr[i] >= 0)
        {
            ret = (int*)realloc(ret, (j + 1) * sizeof(int));
            ret[j] = arr[i];
            j++;
        }
    }

    free(arr);
    arr = NULL;
    *returnSize = j;

    return ret;
}
int main()
{
    int arr1[] = { 4,9,5 };
    int arr2[] = { 9,4,9,8,4 };
    int size = 0;
    int* nums = intersection(arr1, 3, arr2, 5, &size);
    return 0;
}

//int main()
//{
//    //int* arr = (int*)malloc(2 * sizeof(int));
//    //int arr[] = "asdfghj";
//    int arr[] = { 1 };
//    memset(arr, -1, 1);
//    return 0;
//}